A business datacenter may include large numbers of computing resources and storage resources. Examples of computing resources include servers, workstations, desktop computers and the like. Storage resources may include multiple disk arrays, network-attached storage (NAS) devices, direct storage and the like.
Large scalable storage systems frequently include massive amounts of local and remote storage and are intended to support complex applications that may require predetermined levels of performance and/or dependability. Such desired service requirements may be expressed in terms of a service level objective. A service level objective typically states a desired combination of performance and dependability characteristics that a user desires for a given application. When agreeing to provide particular levels of service, a datacenter may sell services according to a service level agreement that mirrors the performance and dependability characteristics agreed to by the user. If the agreed-upon service level is not met over a period of time, a financial penalty may be imposed on the datacenter.
The storage resources of a datacenter may be configured in a large number of ways, any one of which may meet a particular agreed-upon service level. Each of these configurations has an associated cost and probability of failure with respect to providing the agreed-upon service level over time. Selecting an optimal configuration that meets the agreed-upon service level while optimizing cost for the datacenter is a challenging problem.